﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entidad;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace Dao
{
    public class VerNotasDao
    {
        private static SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["AcademicoConnectionString"].ConnectionString);
        public static SqlCommand cmd;
        public static List<NotaAlumno> ObtenerNotas(int legajo)
        {
            List<NotaAlumno> listNotaParciales = new List<NotaAlumno>();
            string sql = @"SELECT  tp.descripcion, np.nota, np.fecha, CAST(m.nombre +' - Aula:' + CAST(c.numAula as nvarchar) + ' - Turno:' +  asi.turno as VARCHAR (100)) AS materia 
                                FROM  Alumno a INNER JOIN
                         NotaParciales np ON a.legajo = np.legajo INNER JOIN
                         TipoNota tp ON np.tipoNota = tp.tipoNota INNER JOIN
                         Asignatura asi ON np.codAsignatura=asi.codAsignatura INNER JOIN
                         Materia m ON asi.codMateria=m.codMateria INNER JOIN 
                         Curso c on asi.codCurso=c.codCurso
                            WHERE a.legajo=@Legajo
                            ORDER BY np.fecha";
            SqlCommand cmd = new SqlCommand(sql, cn);
            cmd.Parameters.Add("@Legajo", SqlDbType.Int).Value = legajo;
            try
            {
                cn.Open();
                
                SqlDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    NotaAlumno na = new NotaAlumno();
                    na.nota = (int)dr["nota"];
                    na.fecha = (DateTime)dr["fecha"];
                    na.descripcion = dr["descripcion"].ToString();
                    na.materia = dr["materia"].ToString();

                    listNotaParciales.Add(na);
                }
                dr.Close();
                cn.Close();
            }
            catch (SqlException ex)
            {
                if (cn.State == ConnectionState.Open)
                    cn.Close();
                throw new ApplicationException("Error BD NotaParciales.\n Problemas:" + ex.Message);
            }
            return listNotaParciales;

        }
    }
}
